
<?php

//session_start();
include_once ('../genericos/translate.php');
include '../datos/AccesoDatos.php';
include 'ClassEncriptar.php';
include_once ('sqlinjection.php');
include 'session.php';
if (isset($_GET['accion'])) {
    $accion = $_GET['accion'];
}

//session_start();
//else {
//
//    exit;
//}

$objUsuario = new Usuario();

switch ($accion) {

    case "Autentificar":$objUsuario->Autentificar();
        break;

    case "usuario":$objUsuario->traerUsuario();
        break;

    case "checkusuario":$objUsuario->checkUsuario();
        break;

    case "guardar":$objUsuario->guardarUsuario();
        break;

    case "enviarcorreo":$objUsuario->enviarCorreo();
        break;

    case "olvidocontrasena":$objUsuario->olvidoContrasena();
        break;

    case "perfilesusuario":$objUsuario->traerPerfilesUsuario();
        break;
    
    case "usuariosrelacionados": $objUsuario->traerUsuariosRelacionados();
        break;
    
    case "opcionespermiso": $objUsuario->traerPermisosOpciones();
        break;
    
    
}

class Usuario {

    var $dtresultados = array();
    var $pass;
    var $user;
    var $nombre;
    var $tipoempleado;
    var $permisos = array();
    var $idusuario;
    var $idpersona;
    var $idempleado;

    
    public function Autentificar() {
        $encriptador = new Encriptador();
        $objSession = new Session();
        $this->pass = $_GET['pass'];
        $this->user = $_GET['user'];

        $sql = "pa_Autenticar('" . $this->user . "','" . $this->pass;
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $error = $objDatos->devuelveError();
        if ($error != "") {
            echo $error;
        } else {
            while ($row = $objDatos->devuelveArreglo()) {
                if ($row["lg_primeraves"] == "1") {
                    echo "primeravez";
                } else {
                    echo "existe";
                }
                $this->idusuario = $row["id_usuario"];
                $this->idpersona = $row["id_persona"];
                $this->nombre = $row["nombre"];

                $this->idempleado = $row["ID_EMPLEADO"];
                $this->permisos = $this->traerPermisos();
                $SESSION[0] = $this->idusuario;
                $SESSION[1] = $this->idpersona;
                $SESSION[2] = $this->nombre;
                $SESSION[3] = $this->permisos;
                $SESSION[4] = $_GET['idioma'];
                $SESSION[5] = $this->idempleado;
                $objSession->crear($SESSION);
                $cookie = $encriptador->Encriptar($this->idusuario);
            }
            if ($objDatos->devuelveRegsLeidos() == 0) {
                echo "0";
            }
        }
    }

    private function traerPermisos() {
        $sql = "pa_Permisos('" . $this->idusuario;
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $permisos = array();

        while ($row = $objDatos->devuelveArreglo()) {
            
            $my_array = array(
                    'id' => $row['ID_MODULO'],
                    'ds' => $row['DS_MODULO']
                );
            
            $permisos[]= $my_array ;
            
        }
        return $permisos;
    }
    
     public function traerPermisosOpciones() {
        $objSession = new Session();
        
        $idmodulo = $_GET['idmodulo']; 
        $sql = "pa_PermisosOpciones('" . $idmodulo;
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarPA($sql);
        $permisos = array();
        
        
        $i=0;
        
         $menu .= '<ul class="menu_lateral">';
         while ($row = $objDatos->devuelveArreglo()) {
             $i++;  
             $li = '<li><a id="list' .$i . '" onclick="javascript:cargarContenido(\''.$row['ds_archivo'] .'\',this.id)">'.  _($row['ds_opcion']). ' </a></li>';           
                $menu .= $li;
               
            }
            
          $menu .= '</ul>';
          
          echo $menu;
          
//        while ($row = $objDatos->devuelveArreglo()) {
//        
//            
//            $my_array = array(
//                    'opcion' => $row['ds_opcion'],
//                    'archivo' => $row['ds_archivo']
//                );
//            
//            $permisos[]= $my_array ;
//            
//        }
        
//        $objSession->crearOpcion($permisos);
        
    }

    public function guardarUsuario() {

        $oper = $_GET['oper'];

        if ($oper == "add") {
            $contrasena = $this->generar_clave(8);
        } else if ($oper == "edit") {
            $contrasena = $_GET['contrasena'];
        }


        $id_persona = $_SESSION['IdPersona'];

        $usuario = $_GET['usuario'];
        $idusuario = $_GET['idusuario'];

        $contrasenanueva = $_GET['contrasenanueva'];

        $perfil = $_GET['perfiles'];

        $idemail = $_GET['idemail'];

        $dsemail = $_GET['dsemail'];


        $sql = "pa_ActualizarUsuario('" .
                $idusuario . "','" .
                $id_persona . "','" .
                $usuario . "','" .
                $contrasena . "','" .
                $contrasenanueva . "','" .
                $perfil . "','" .
                $idemail . "','" .
                $oper;

        $objDatos = new AccesoDatos();
        $objDatos->ejecutarPA($sql);
        $error = $objDatos->devuelveError();

        if ($objDatos->devuelveRegsLeidos() > 0) {
            echo "passincorrecto";
        } else if ($error) {
            echo $error;
        } else if ($oper == "add") {

            $this->enviarCorreoUsuario($usuario, $contrasena, $dsemail);
        }

        // enviarcorreo
    }

    public function traerUsuario() {


        $id_persona = $_GET['ID_PERSONA'];
        $sql = "pa_ListarDatosUsuarios('" . $id_persona;
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $permisos = array();

        while ($row = $objDatos->devuelveArreglo()) {

            $_SESSION['IdPersona'] = $row['ID'];

            $my_array = array(
                'idpersona' => $row['ID_PERSONA'],
                'idusuario' => $row['ID_USUARIO'],
                'nombre' => $row['DS_NOMBRE'],
                'ape1' => $row['DS_APELLIDO1'],
                'ape2' => $row['DS_APELLIDO2'],
                'usuario' => $row['DS_NOMBREUSUARIO'],
                'tipousuario' => $row['ID_TIPOUSUARIO'],
                'idemail' => $row['ID_EMAIL']
            );
        }
        echo json_encode($my_array);
    }

    public function checkUsuario() {


        $user = $_GET['user'];
        $id_persona = $_SESSION['IdPersonaCons'];


        $sql = "Select ds_nombreusuario from adm_usuarios where ds_nombreusuario ='" . $user . "' and id_persona !='" . $id_persona . "'";
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsultaSencilla($sql);


        if ($objDatos->devuelveRegsLeidos() > 0) {
            echo "existe";
        } else {
            echo "noexiste";
        }
    }

    function generar_clave($longitud) {
        $cadena = "[^A-Z0-9]";
        return substr(eregi_replace($cadena, "", md5(rand())) .
                        eregi_replace($cadena, "", md5(rand())) .
                        eregi_replace($cadena, "", md5(rand())), 0, $longitud);
    }

    function olvidoContrasena() {


        $oper = $_GET['oper'];


        $usuario = $_GET['usuario'];
        $email = $_GET['email'];

        $contrasena = $this->generar_clave(8);



        $sql = "pa_OlvidoContrasena('" . $email . "','" .
                $usuario . "','" .
                $contrasena . "','" .
                $oper;


        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $error = $objDatos->devuelveError();


        if ($objDatos->devuelveRegsLeidos() > 0) {

            while ($row = $objDatos->devuelveArreglo()) {

                $email = $row['DS_EMAIL'];
                $usuario = $row['DS_NOMBREUSUARIO'];

                $this->enviarOlvidoContrasena($usuario, $contrasena, $email);
            }
        } else {
            echo "noexiste";
        }




        // enviarcorreo
    }

    public function traerPerfilesUsuario() {

        $idusuario = $_GET['idusuario'];

        $sql = "pa_traerPerfilesxUsuario('" . $idusuario;


        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $error = $objDatos->devuelveError();
        if ($error != "") {
            echo $error;
        } else {

            while ($row = $objDatos->devuelveArreglo()) {

                $modulo = array(
                    'id' => $row['ID_PERFIL'],
                    'ds' => $row['DS_PERFILUSUARIO']
                );

                $my_array[] = $modulo;
            }
            echo json_encode($my_array);
        }
    }

    function enviarCorreoUsuario($usuario, $contrasena, $emai) {


        $headers = "MIME-Version: 1.0\r\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
        $headers .="Content-Transfer-Encoding: 8bit\r\n";
        $headers .="X-Priority: 1\r\n";
        $headers .="X-MSMail-Priority: High\r\n";
        $headers .= "From: EME-INFO<info@eme.com>\r\n";
        $cuerpo = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Titulo de Correo</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <style>
            .wrapper{
                background: #ffffff url(http://echosoft.cesand.net/images/bg2.jpg) no-repeat;
                background-repeat: repeat-x;
                color: #6f6f6f;
                width: 100%;
                height: 100%;
            }
            ::selection {
                background: #ABCFE5; /* Safari */
            }
            ::-moz-selection {
                background: #ABCFE5; /* Firefox */
            }
            .div_texto{
                padding: 10px 5px;
            }
            .div_tabla{
                padding: 10px 5px;
            }
            #rounded-corner
            {
                font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
                font-size: 12px;
                width: 75%!important;
                text-align: left;
                border-collapse: collapse;
                cursor: pointer;
            }
            #rounded-corner thead th.rounded-company
            {
                -moz-border-radius-topleft: 4px;
                border-top-left-radius: 4px;
                background: #ABCFE5 url(http://echosoft.cesand.net/images/menu_background.jpg) repeat-x bottom left;
            }
            #rounded-corner thead th.rounded-q4
            {
                -moz-border-radius-topright: 4px;
                border-top-right-radius: 4px;
                background: #ABCFE5 url(http://echosoft.cesand.net/images/menu_background.jpg) repeat-x bottom left;
            }
            #rounded-corner th
            {

                padding: 8px;
                font-weight: normal;
                font-size: 13px;
                color: #025176;
                background: #fffff;
            }
            #rounded-corner td
            {
                padding: 8px;
                background: #ffffff;
                border-top: 1px solid #fff;
                color: #025176;
            }
            #rounded-corner tfoot td.rounded-foot-left
            {

                -moz-border-radius-bottom: 10px;
                border-bottom-left-radius: 10px;
                background: #EAF4FD;
            }
            #rounded-corner tfoot td.rounded-foot-right
            {
                -moz-border-radius-bottomright: 10px;
                border-bottom-right-radius: 10px;
                background: #EAF4FD;
            }
            #rounded-corner tbody tr:hover td
            {
                background: #eaf4fd;
            }

        </style>
    </head>
    <body>
        <div class="wrapper">
        <div class="div_texto">
            <p><img src="http://echosoft.cesand.net/images/EME-Logo.png" /></p>
            <p>' . _("cuerpoEmailNuevoUsuario") . '</p>
        </div>
        <div class="div_tabla">
            <table id="rounded-corner" summary="">
                <thead>
                    <tr>
                        <th scope="col" class="rounded-company">Tipo de Dato</th>
                        <th scope="col" class="rounded-q4">Dato</th>
                    </tr>
                </thead>
                <tfoot>

                    <tr>
                        <td colspan="1" class="rounded-foot-left"><em>' . _("leyendaNuevoUsuario") . '</em></td>
                        <td class="rounded-foot-right">&nbsp;</td>
                    </tr>
                </tfoot>
                <tbody>
                    <tr>
                        <td>' . _("usuario") . ':</td>
                        <td>' . $usuario . '</td>
                    </tr>
                    <tr>
                        <td>' . _("contrasena") . ':</td>
                        <td>' . $contrasena . '</td>
                    </tr>
                    <tr>
                        <td>' . _("fecha") . ':</td>
                        <td>' . $hora_envio . '</td>
                    </tr>
                    <tr>
                        <td>' . _("ip") . ':</td>
                        <td>' . $ip_server . '</td>
                    </tr>
                                        <tr>
                        <td>' . _("ipInterna") . ':</td>
                        <td>' . $ip_interna . '</td>
                    </tr>
                </tbody>
            </table>   
        </div>
        <div class="div_texto">
            <p>' . _("finEmailNuevoUsuario") . '</p>
        </div>
        </div>
    </body>
</html>';
        //CAMBIAR EL CORREO POR DEFAULT,AL QUE OBTIENE POR PARAMETRO
        if (!mail($emai, _("asunto"), $cuerpo, $headers)) {
            echo "0";
        }
    }

    function enviarOlvidoContrasena($usuario, $contrasena, $email) {
        $Fecha = date('d-m-Y');
        $Hora = date('H:i:s');
        $hora_envio = $Fecha . " " . $Hora;
        $ip_server = $_SERVER["REMOTE_ADDR"];
        $ip_interna = $_SERVER["HTTP_X_FORWARDED_FOR"];
        $headers = "MIME-Version: 1.0\r\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
        $headers .="Content-Transfer-Encoding: 8bit\r\n";
        $headers.="X-Priority: 1\r\n";
        $headers.="X-MSMail-Priority: High\r\n";
        $headers .= "From: EME-INFO<info@eme.com>\r\n";
        $cuerpo = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Titulo de Correo</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <style>
            .wrapper{
                background: #ffffff url(http://echosoft.cesand.net/images/bg2.jpg) no-repeat;
                background-repeat: repeat-x;
                color: #6f6f6f;
                width: 100%;
                height: 100%;
            }
            ::selection {
                background: #ABCFE5; /* Safari */
            }
            ::-moz-selection {
                background: #ABCFE5; /* Firefox */
            }
            .div_texto{
                padding: 10px 5px;
            }
            .div_tabla{
                padding: 10px 5px;
            }
            #rounded-corner
            {
                font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;
                font-size: 12px;
                width: 75%!important;
                text-align: left;
                border-collapse: collapse;
                cursor: pointer;
            }
            #rounded-corner thead th.rounded-company
            {
                -moz-border-radius-topleft: 4px;
                border-top-left-radius: 4px;
                background: #ABCFE5 url(http://echosoft.cesand.net/images/menu_background.jpg) repeat-x bottom left;
            }
            #rounded-corner thead th.rounded-q4
            {
                -moz-border-radius-topright: 4px;
                border-top-right-radius: 4px;
                background: #ABCFE5 url(http://echosoft.cesand.net/images/menu_background.jpg) repeat-x bottom left;
            }
            #rounded-corner th
            {

                padding: 8px;
                font-weight: normal;
                font-size: 13px;
                color: #025176;
                background: #fffff;
            }
            #rounded-corner td
            {
                padding: 8px;
                background: #ffffff;
                border-top: 1px solid #fff;
                color: #025176;
            }
            #rounded-corner tfoot td.rounded-foot-left
            {

                -moz-border-radius-bottom: 10px;
                border-bottom-left-radius: 10px;
                background: #EAF4FD;
            }
            #rounded-corner tfoot td.rounded-foot-right
            {
                -moz-border-radius-bottomright: 10px;
                border-bottom-right-radius: 10px;
                background: #EAF4FD;
            }
            #rounded-corner tbody tr:hover td
            {
                background: #eaf4fd;
            }

        </style>
    </head>
    <body>
        <div class="wrapper">
        <div class="div_texto">
            <p><img src="http://echosoft.cesand.net/images/EME-Logo.png" /></p>
            <p>' . _("cuerpoEmailOlvidoContrasena") . '</p>
        </div>
        <div class="div_tabla">
            <table id="rounded-corner" summary="">
                <thead>
                    <tr>
                        <th scope="col" class="rounded-company">Tipo de Dato</th>
                        <th scope="col" class="rounded-q4">Dato</th>
                    </tr>
                </thead>
                <tfoot>

                    <tr>
                        <td colspan="1" class="rounded-foot-left"><em>' . _("leyendaRecuperaClave") . '</em></td>
                        <td class="rounded-foot-right">&nbsp;</td>
                    </tr>
                </tfoot>
                <tbody>
                    <tr>
                        <td>' . _("usuario") . ':</td>
                        <td>' . $usuario . '</td>
                    </tr>
                    <tr>
                        <td>' . _("contrasena") . ':</td>
                        <td>' . $contrasena . '</td>
                    </tr>
                    <tr>
                        <td>' . _("fecha") . ':</td>
                        <td>' . $hora_envio . '</td>
                    </tr>
                    <tr>
                        <td>' . _("ip") . ':</td>
                        <td>' . $ip_server . '</td>
                    </tr>
                                        <tr>
                        <td>' . _("ipInterna") . ':</td>
                        <td>' . $ip_interna . '</td>
                    </tr>
                </tbody>
            </table>   
        </div>
        <div class="div_texto">
            <p>' . _("finEmailOlvidoContrasena") . '</p>
        </div>
        </div>
    </body>
</html>';
        $asunto = _("asuntoRecuperaClave");
        if (!mail($email, $asunto, $cuerpo, $headers)) {
            echo "0";
        }
    }
    
    
    
     function traerUsuariosRelacionados(){
        
        $modo = $_GET['modo'];
        $sql = "pa_ListarUsuariosRelacionados('" . $_SESSION['IdEmpleado'];
        $objDatos = new AccesoDatos();
        $objDatos->ejecutarConsulta($sql);
        $error = $objDatos->devuelveError();
        if ($error != "") {
            echo $error;
        } else {
            
                
            switch ($modo) {
            case 1:
                while ($row = $objDatos->devuelveArreglo()) {
                $id = $row['id_usuario'];
                $nombre = $row['usuario'];
                echo "<option value='" . $id . "'>" . $nombre . "</option>";
                }
                break;
            case 2:
               while ($row = $objDatos->devuelveArreglo()) {
                    $cid = $row['id_usuario'];
                    $cname = $row['usuario'];
                    echo "$cname|$cid\n";
                }
            
            
            }
        
    }
        
    }
    
    
    

}

?>
